

program pol;

var i,ste:longint;
pole,a,b,step,ep,tmp:real;

function f(x:real):real;
begin
f:=x*x*2-x*6+3;
f:=x*x;
end;

function p(a,b:real;d:longint):real;
var start,e,tmp,pp:real;i:longint;
begin
pp:=0;
tmp:=(b-a)/d;
start:=a;
for i:=1 to d do
        begin
           e:=start+tmp;
           pp:=pp+tmp*abs(f(start)/2+f(e)/2);
           start:=e;
        end;
writeln('pole przy podziale na ',d, ' to ', pp:2:9);
p:=pp;
end;


begin
writeln('podaj dokladnosc szukania pola');
readln(ep);
writeln('Poczatek badanego przedzialu: ');
readln(a);
writeln('Koniec badanego przedzialu: ');
readln(b);
if a>b then begin pole:=a; a:=b; b:=pole; end;
ste:=1;
pole:=p(a,b,ste);
repeat
      tmp:=pole;
      ste:=ste*2;
      pole:=p(a,b,ste);
until tmp-pole<=ep;
writeln('Koniec. pole=',pole:2:9);
readln;

end.